The invention relates generally to computer-aided design and more specifically to transferring data between different computer-aided design systems.
Computer-aided design (xe2x80x9cCADxe2x80x9d) software systems are used by mechanical engineers, industrial designers, manufacturing engineers, production engineers, and others, in the process of designing and manufacturing physical products. During this process, large amounts of data of considerable complexity are generated.
In any application, it is crucial to be able to exchange data between different software systems. For example, data exchange is essential when switching to a different system or concurrently working with several different systems. Further, such exchange is useful for collaboration between different departments in the same company, for collaboration between different companies, for data archiving, data catalogues, interapplication operability, and general data management. Currently, only a small fraction of data can be exchanged between CAD systems.
This application discusses the exchange of data used in the design process. However, the methods and systems of this invention can be applied to other types of data as well, including but not limited to planning, manufacturing, tolerancing, and inspection. Furthermore, the methods and systems of this invention can be used to facilitate collaboration between people using different computer systems, as well as for publishing data in a widely readable format while controlling the amount and level of detail of the published data.
One paradigm of current CAD systems is called parametric feature-based design. In parametric feature-based design the user interacts with the system by sequentially adding features to the designed part. A feature is an operation that modifies the geometry of the part or some other aspects of it in a predefined way. Features are parametric, meaning that the way they modify the geometry of the part is controlled by parameters. These parameters can be changed at any time by the user, thereby modifying the whole part. The process of computing the full geometry of the boundary of the part from parameter values is usually called xe2x80x98regenerationxe2x80x99 or xe2x80x98rebuildxe2x80x99 of the part. Each regeneration process produces a new instance of the part. One technical capability essential for implementing a regeneration process, is referred to as persistent IDs or persistent naming, and refers to the identification of similar model entities in different model instances.
The success of the parametric feature-based paradigm is usually attributed to two main factors. First, the fact that users express themselves in terms of features (and not, for example, in terms of explicit geometry) means that the system is more aware of the design intent. Second, the fact that features are parametric allows the user to modify objects easily while still obeying design intent and constraints. Since modifications occur very frequently during design, this capability saves time.
The description above does not imply that users must start by designing parts, and only then combine them into assemblies. On the contrary, modern design methods emphasize early conceptual design of the product without giving full details. Essential characteristics of the assembly can be specified before any detailed part design is made, and part dimensions can even be governed by them. The issue of whether design is done in a bottom-up manner, in a top-down manner, or iteratively is independent of the disclosure.
Formally, what the user designs is not a single part but a parametric family of parts. Each choice of dimensions and parameters (a parameter vector) yields, if legal, a different part (instance). Some systems support a somewhat different concept of a part family.
Before the advent of parametric feature-based design, the leading design paradigm was explicit specification of geometry. This method is cumbersome, but it also gives designers a high degree of control on the resulting shape. For some types of products, this method remains the preferred method to this day, for example for parts involving complex free-form surfaces. This method can also be attractive in some situations, e.g., when only the geometry (not the feature structure) is available.
In addition, parametric feature-based systems can be coarsely classified into xe2x80x98purexe2x80x99 systems and xe2x80x98hybridxe2x80x99 systems, the latter allowing users explicit (non-parametric) control over geometry. For the purposes of this invention, a parametric, feature-based system is referred to as a parametric system.
Several data classes arise in parametric feature based design and in explicit geometry design. Few CAD systems, if any, support all of the data classes. In addition, each data class contains a possibly large number of more specific types, called data types. Data types may have several subtypes, for example, if the data types have several construction methods. For the purposes of this invention, all sub-types, sub-sub-types, etc. are referred to as xe2x80x98data typesxe2x80x99, unless stated otherwise. Various data classes are generally not independent; there are inter-relationships between them that are essential for correct and meaningful interpretation of the data.
There are three main types of difficulties associated with transferring data between CAD systems: (1) those related to input and output of various system architectures; (2) those related to systems"" internal data formats; and (3) those related to numerical and algorithmic problems. To exchange data between different software systems, there must be a way to get data in and out of the systems involved. The possibility and ease of doing this depends on the software architecture of the system. For example, most current CAD systems include data classes which are not easily automatically inserted into or removed from the system. The user can, of course, see the data, but it is not easy to extract it through a computer program. The reason for this situation is threefold. First, most CAD systems were designed to be interactive; hence, the software designers have not spent much effort in providing means for automatic data communication. Second, most CAD vendors consider their data representation to be a trade secret, hence they try to keep it proprietary. Third, it is simply not that easy to provide elegant ways for automatic data extraction and creation.
There are many different data classes potentially used in CAD systems, and each of these data classes may possess a large number of specific data types. If the data formats of any two CAD systems are compared, most likely there will be differences. These differences can be of varying degrees. For example, the entire paradigm for user interaction might be different (explicit geometry manipulation vs. parametric feature based design). There may be data classes supported by one system but not by the other. There may be specific data types supported by one system and not by the other. There may be specific data types whose behavior in terms of the geometry they produce is different from system to system even if the specification of the data types seems identical. This is because there may be different ways of specifying the same specific data type. For example, a plane can be specified by giving three points on the plane or by giving one point and a direction normal to the plane.
Even when CAD systems have the same interaction paradigm and support a data class and all its specific data types, numerical or algorithmic problems might considerably impair the capability of exchanging data between them. For example, even if both systems are parametric and support the same types of features, this does not mean that each system supports exactly the same range of permissible parameter values for instantiating every feature. Therefore it is certainly possible that a single parameter vector will regenerate a model successfully on one system but will fail on the other system. In such a case the systems support different parameter spaces.
The reason for this phenomenon is two-fold. First, the semantics of feature instantiation have not yet been defined formally and each system implements the semantics independently using its own heuristics. Even if in most cases the end result seems the same, in some cases the fact that the instantiation algorithms are different might produce different results. Second, each system uses a different geometric tolerance when computing with geometry. For example each system may define differently when two surfaces intersect and when two points are considered to be the same point. The tolerance used affects the success or failure of the operation. Feature instantiation computations make heavy use of geometric operations, hence their success or failure for certain parameter values are highly sensitive to the tolerance policy implemented.
There are two major approaches to data exchange: through neutral file formats and through application program interfaces (xe2x80x9cAPIsxe2x80x9d). Current activities in both approaches handle only some of the data classes. There are successful neutral file formats for 2-D drawings and 3-D geometry, format proposals for 2-D sketches and relationships, and partial proposals for the feature structure. The neutral file format approach does not address interfacing with individual CAD systems, assuming this issue should be solved independently by vendors or others. Most advocates of the API approach concentrate their efforts towards defining a common API for extracting data from CAD systems. Such an approach cannot deal with situations in which there are several APIs, and does not deal with feeding a model""s specification data into CAD systems.
In one aspect, the invention relates to a method for converting specification data in a source CAD format from a source CAD system to a target CAD format on a target CAD system, the method including the steps of: providing a source CAD model including the specification data in the source CAD format; extracting the specification data from the source CAD model; and generating a target CAD model including the specification data in the target CAD format for the target CAD system. In a further aspect, the method includes the step of translating the specification data from the source CAD format to the target CAD format. In yet a further aspect, the translating step includes substantially losslessly translating the specification data. In another further aspect, the method further includes the step of re-translating the specification data from the target CAD format to the source CAD format. In yet a further aspect, the re-translating step includes substantially losslessly translating the specification data. In a further aspect of the invention, the method further includes the steps of: translating the specification data from the source CAD format to an intermediate CAD format; generating an intermediate CAD model including the specification data in the intermediate CAD format; and translating the specification data from the intermediate CAD format to the target CAD format.
In a further aspect of the invention, the method further includes the steps of: identifying an element in the source specification data which is not supported in the target CAD format; and emulating the element in the target CAD model.
In another aspect, the invention relates to a method for converting specification data from a source CAD model in a source CAD format on a source CAD system including the steps of: providing a source CAD model including the specification data in the source CAD format; and extracting the specification data from the source CAD model. In a further aspect of the invention, the method further includes the step of translating the source CAD model from the source CAD format. In yet a further aspect of the invention, the translating step includes translating the specification data into a target CAD format. In a further aspect of the invention, the translating step includes translating the specification data into an intermediate CAD format.
In another aspect, the invention relates to a method for converting specification data to a target CAD model in a target CAD format on a target CAD system including the steps of: providing a first CAD model including the specification data in a first CAD format on a first CAD system; and generating the target CAD model including the specification data in the target format on the target CAD system, wherein the target CAD format is different from the first CAD format. In a further aspect of the invention, the method further includes the step of translating the specification data to the target CAD format. In a further aspect of the invention, the method further includes the step of translating specification data from a source CAD format. In yet a further aspect of the invention, the translating step includes translating the specification data from an intermediate CAD format.
In another aspect, the invention relates to a method for converting specification data in a source CAD format including a first data level from a source CAD system to a target CAD model on a target CAD system including a second data level, wherein the first and second data levels are selected from a plurality of data levels, the method including the steps of: providing a source CAD model including the specification data in the source CAD format at the first data level; extracting the specification data from the source CAD model; and generating a target CAD model including the specification data in the target CAD format at the second data level for the target CAD system. In a further aspect of the invention, the method further includes the step of determining a highest data level sufficient to map the source specification data.
In another aspect, the invention relates to an apparatus for converting specification data in a source CAD format from a source CAD system to a target CAD model on a target CAD system, including: a source CAD model including the specification data in the source CAD format; an extractor extracting the specification data from the source CAD model; and a generator generating a target CAD model including the specification data in the target CAD format for the target CAD system. In a further aspect of the invention, the apparatus includes a first translator translating the specification data from the source CAD format to the target CAD format. In yet a further aspect of the invention, the first translator translates the specification data substantially losslessly. In a further aspect of the invention, the apparatus includes a second translator re-translating the specification data from the target CAD format to the source CAD format. In yet a further aspect of the invention, the second translator translates the specification data substantially losslessly. In a further aspect of the invention, the apparatus includes: a first translator translating the specification data from the source CAD format to an intermediate CAD format; a generator generating an intermediate CAD model including the specification data in the intermediate CAD format; and a second translator translating the specification data from the intermediate CAD format to the target CAD format. In a further aspect of the invention, the apparatus includes an identifier identifying an element in the source specification data which is not supported in the target CAD format; and an emulator emulating the element in the target CAD model.
In another aspect, the invention relates to an apparatus for converting specification data from a source CAD model in a source CAD format on a source CAD system including: a source CAD model including the specification data in the source CAD format; and an extractor extracting the specification data from the source CAD model In a further aspect of the invention, the apparatus includes a translator translating the source CAD model from the source CAD format.
In another aspect, the invention relates to an apparatus for converting specification data to a target CAD model in a target CAD format on a target CAD system including: a CAD model including the specification data in a first CAD format on a first CAD system; and a generator generating the target CAD model including the specification data in the target format on the target CAD system, wherein the target CAD format is different from the first CAD format. In a further aspect of the invention, the apparatus includes a translator translating the specification data to the target CAD format.